package org.freestyle.nj.hot100;

import org.freestyle.nj.AbstractImplement;

import java.util.Scanner;

/**
 * 给定一个整数数组 nums 和一个整数目标值 target，请你在该数组中找出 和为目标值 target  的那 两个 整数，并返回它们的数组下标。
 * 你可以假设每种输入只会对应一个答案。但是，数组中同一个元素在答案里不能重复出现。
 * 你可以按任意顺序返回答案。
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/two-sum
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 *
 * @author yangpeng
 * @date 2022-09-30 00:33:54
 */
public class Sum4TwoNumbers extends AbstractImplement {

    @Override
    public void implement() {
        System.out.print("输入：");

        // 接受输入源数据和目标值
        Scanner sc = new Scanner(System.in);
        String inputStr = sc.nextLine();
        if(isEmpty(inputStr)) {
            sc.close();
            return;
        }
        String[] inputStrArr = inputStr.split("\\[")[1].split("]")[0].split(",");
        int[] inputIntArr = new int[inputStrArr.length];
        for(int i = 0;i<inputIntArr.length;i++){
            inputIntArr[i] = Integer.valueOf(inputStrArr[i]);
        }
        int target = Integer.valueOf(inputStr.split("target = ")[1]);

        // 开始计算下标
        int first = 0,second = 0;
        for(int i =0;i<inputIntArr.length;i++) {
            for(int j=0;j<inputIntArr.length;j++) {
                if(i == j) {continue;}

                if(inputIntArr[i] + inputIntArr[j] == target){
                    first = i;
                    second = j;
                    break;
                }
            }
        }

        System.out.println("["+first+","+second+"]");

        sc.close();
    }
}
